home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
WindowNode.cpp
< prev
next >
Wrap
Text File
|
1997-02-20
|
3KB
|
113 lines
/*
* File: WindowNode.cpp
* Summary: A node representing a window resource for use in a THierarchicalTable.
* Written by: Jesse Jones
*
* Copyright ゥ 1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 1/17/96 JDJ Created
*/
#include "WindowNode.h"
#include <ZDocWindow.h>
#include "ZHandleStream.h"
#include <ZHierarchicalTable.h>
#include "ViewContainer.h"
#include "WindowPicker.h"
#include "WindowProxy.h"
// ===================================================================================
// class CWindowNode
// ===================================================================================
//---------------------------------------------------------------
//
// CWindowNode::~CWindowNode
//
//---------------------------------------------------------------
CWindowNode::~CWindowNode()
{
}
//---------------------------------------------------------------
//
// CWindowNode::CWindowNode (THierarchicalTable*, CResourceMap*)
//
//---------------------------------------------------------------
CWindowNode::CWindowNode(THierarchicalTable* table, CResourceMap* rsrcMap) : CResourceNode(table, rsrcMap)
{
}
//---------------------------------------------------------------
//
// CWindowNode::CWindowNode (THierarchicalTable*, TSubNode*, CResourceMap*, ResID)
//
//---------------------------------------------------------------
CWindowNode::CWindowNode(THierarchicalTable* table, TSubNode* parent, CResourceMap* rsrcMap, ResID id) : CResourceNode(table, parent, rsrcMap, id)
{
}
//---------------------------------------------------------------
//
// CWindowNode::Make
//
//---------------------------------------------------------------
CResourceNode* CWindowNode::Make(TSubNode* parent, ResID id)
{
return new CWindowNode(mTable, parent, mRsrcMap, id);
}
//---------------------------------------------------------------
//
// CWindowNode::EditResource
//
//---------------------------------------------------------------
void CWindowNode::EditResource()
{
TDocWindow* docWind = dynamic_cast<TDocWindow*>(mTable->GetTopView());
THandle data = mRsrcMap->GetResourceData(mID);
TWindow* window = nil;
CViewContainer* container = CViewContainer::GetContainer('Wind', mID);
if (container != nil) {
TView* top = container->GetTopView();
window = dynamic_cast<TWindow*>(top);
window->Select();
} else if (data.GetSize() == 0) {
window = ::PickWindow(docWind->GetDoc());
if (window != nil) {
(void) new CViewContainer(window, mRsrcMap, mID);
window->HandleOpen();
}
} else {
CWindowProxy::msUseProxy = true;
TInHandleStream stream(data);
// window = CDialogBoxProxy::Create(stream, docWind->GetDoc());
window = TWindow::Create(stream, docWind->GetDoc());
container = dynamic_cast<CViewContainer*>(window->FindSubPane("CViewContainer"));
ASSERT(container != nil);
container->SetResourceID(mRsrcMap, mID);
window->HandleOpen();
}
}